package com.qf.service;

import com.github.pagehelper.PageInfo;
import com.qf.entity.Menu;
import com.qf.entity.Role;
import com.qf.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 2019/12/11
 * 郭程鹏
 * springboot_oa_five
 * 面向代码面向君,不负时光不负卿
 */

public interface RoleService {

    //分页+模糊查
    PageInfo<Role> findAllRoles(String roleName, Integer page);

    //导出excl
    List<Role> getExcle(List<Integer> list);

    //批量删除
    void  deleteAll(List<Integer> list);

    //删除一条数据
    void deleteOne(Integer roleId);

    //判断是否可删
    List<String> checkCanDel( Integer roleId);

    //统计不可删除的角色
    List<Integer> checkDelDo(List<Integer> roleId);

    //禁用
    void updateOne( Integer roleId);

    //启用
    void activeOne( Integer roleId);

    //查询所有菜单
    List<Menu> findMenu();

    //异步校验用户名
    Integer ajaxRoleName(String roleName);

    //添加角色和中间表
    Integer addRoleAndMiddle(Role role,List<Integer> menuId);

    //根据角色编号查询角色
    Role findRoleById( Integer roleId);

    //删除角色菜单中间表
    void delMenuIdByUserIdInMiddle(Integer roleId);

    //添加角色和中间表
    Integer updateRoleAndMiddle(Role role,List<Integer> menuId);

    //根据角色查询所有菜单
    List<Menu> findMenuByRoelId(Integer roleId);

    //根据角色角色编号查询角色名称
    List<String> findRoleNameByUserId(List<Integer> roleId);
}
